/**
 * 设置获取OSS配置并上传图片
 */
import { Ajax, common } from "@/utils"

// 文件类型 -1其他 0 表格 1图片 2视频
function computedFormat(file) {
  const table = ["xlsx", "xlsm", "xlsb", "xltx", "xltm", "xls", "xlt", "xml", "xlam", "xla", "xlw", "xlr"]
  const img = ["png", "jpg", "jpeg", "bmp", "gif", "webp", "psd", "svg", "tiff"]
  const video = [
    "avi",
    "mpg",
    "mpeg",
    "mpe",
    "m1v",
    "m2v",
    "mpv2",
    "mp2v",
    "dat",
    "ts",
    "tp",
    "tpr",
    "pva",
    "pss",
    "mp4",
    "m4v",
    "m4p",
    "m4b",
    "3gp",
    "3gpp",
    "3g2",
    "3gp2",
    "ogg",
    "mov",
    "qt",
    "amr",
    "rm",
    "ram",
    "rmvb",
    "rpm"
  ]
  const suffix = file.substring(file.lastIndexOf(".") + 1)

  if (table.indexOf(suffix.toLowerCase()) != -1) {
    return 0 // 表格
  }
  if (img.indexOf(suffix.toLowerCase()) != -1) {
    return 1 // 图片
  }
  if (video.indexOf(suffix.toLowerCase()) != -1) {
    return 2 // 视频
  }
  return -1 // 其他
}

export default function upload(file, params) {
  return new Promise((resolve, reject) => {
    logs.info("file-----", file)
    if (file && file.raw) {
      let ossdata = new FormData()
      ossdata.append("ident", params.ident)
      ossdata.append("fileType", computedFormat(file.name) || -1)
      ossdata.append("file", file["raw"])

      Ajax.requestSpecial({
        url: "/functionApi/uploadFiles",
        data: ossdata
      })
        .then(res => {
          if (res.code == 200) {
            resolve(res.data)
          } else {
            reject(res.msg)
          }
        })
        .catch(err => {
          reject(err)
        })
    }
  })
}
